#include <iostream>
#include <string>

using namespace std;

template <typename T>
T fobj(T t, T){
	return t;
}

template <typename T>
T fref(const T& t, const T&){
	return t;
}


template <typename T>
T compare(const T& t, const T&){
	return t;
}

int (*fp)(const int&, const int&) = compare;

int m3main()
{
	string sa("a value");
	const string sb("another value");

	fobj(sa, sb);
	fref(sa, sb);

	int a[10], b[42];

	fobj(a, b);
	// fref(a, b);


	return 0;
}